FB#.SETMULTITURNS

Description

The FB#.SETMULTITURNS parameter allows setting the number of absolute multi-turns for the current mechanical position of a DSL encoder. This will change the absolute position of the encoder based on the value passed in.

The value passed in is the number of multi-turns to set for the current position. The single turn mechanical angle is maintained as that is used for commutation. A value of zero will set the current position to 0-360 degrees. Negative 1 will set the current position to -360-0 degrees. The range depends on the number of multi-turn bits supported by the encoder. For example, a 12-bit 4096 turn encoder has the range -2048 to +2047.

If FB#.INITSIGNED is set to 0, the range is shifted to not support negative numbers. For example, a 12-bit 4096 turn encoder would have the range 0-4095.


  • This command is only available for Hiperface DSL encoders.

  • The single turn position is used for commutation angle and should not be altered. Care must be taken when setting this value to ensure the motor is not in motion. If the motor is moving too much, the single turn position data may be corrupted and commutation may be affected..

Depending on the application, having the absolute position roll-over is not desired. When an encoder’s position rolls-over, the drive’s position may not roll-over at the same time. If the drive is then powered OFF and ON or the feedback device re-initialized, the drive position will read the encoder’s absolute position, which may be very different from what the drive last reported. For example, if an encoder that has 4096 multi-turn data rolled over, the drive may read 3000 turns with a positive value, but the encoder would be at -1096 turns (4096 gives +/- 2048 turns, 3000 positive direction turns goes to 2048 and rolls over to -2048 and keeps incrementing until -1096).

In most cases, using FB#.STOREMULTITURN should be enough to maintain the absolute position across reboots; however, in the event a drive must be replaced, the multi-turn data cannot be restored and the above situation would still occur.

If a given application knows how many turns in each direction it will be moving, it can set the absolute position to be within the range such that roll-over will never happen.

Example

Assume a theoretical application that has mechanical limits where the rotary position will not exceed +/-2000 revolutions with a 4096 turn absolute DSL encoder and the initial position reads as 1000 revolutions.

Since the encoder can only represent +2048, when it rotates +2000 revolutions, it will rollover to the negative range. This command can be used to set the current position to mid-range so that the rollover doesn’t occur.

-->FB1.P
4295324225298.000 [Counts]
--> FB1.SETMULTITURNS 0
-->FB1.P
356975356.000 [Counts]

Versions

Action Version Notes
Implemented 02-09-03-000

General Information

Type

Write Only

Units

Revolutions

Range

Encoder dependent (i.e.: 12 bit multi-turn range is -2048 to +2047)

Default Value

N/A

Data Type

Integer

Stored in Non-Volatile Memory

No

Variants Supported

All variants are supported.

Fieldbus Information

EtherCAT CoE and CANopen

Command

Index

SubIndex

Data Type

Units

Float Scale

Access

PDO Mappable

FB1.SETMULTITURNS

3500h

1eh

Signed32

-

-

Write only

No

FB2.SETMULTITURNS

3501h

1eh

Signed32

-

-

Write only

No

FB3.SETMULTITURNS

3502h

1eh

Signed32

-

-

Write only

No

FB4.SETMULTITURNS

3503h

1eh

Signed32

-

-

Write only

No

FB5.SETMULTITURNS

3504h

1eh

Signed32

-

-

Write only

No

EtherNet/IP

Name

ID

Hex

Data Type

Access

Units

FB1.SETMULTITURNS

30800

7850

Signed32

Read/Write

-

FB2.SETMULTITURNS

30801

7851

Signed32

Read/Write

-

FB3.SETMULTITURNS

30802

7852

Signed32

Read/Write

-

FB4.SETMULTITURNS

30803

7853

Signed32

Read/Write

-

FB5.SETMULTITURNS

30804

7854

Signed32

Read/Write

-

PROFINET

Parameter

PNU

Data Type

Access

Units

FB1.SETMULTITURNS

30800

Signed32

Read/Write

-

FB2.SETMULTITURNS

30801

Signed32

Read/Write

-

FB3.SETMULTITURNS

30802

Signed32

Read/Write

-

FB4.SETMULTITURNS

30803

Signed32

Read/Write

-

FB5.SETMULTITURNS

30804

Signed32

Read/Write

-